import {
  setToken
} from '../../utils/setToken';
Page({
  data: {
    // 倒计时
    time: 0,
    // 手机号
    mobile: '',
    // 验证码
    code: '',
    // 重定向页面
    from: '',
    // 重定向类型
    type: '',
  },
  onLoad(options) {
    console.log('传入页面参数', options)
    this.setData({
      from: options.from,
      type: options.type
    })
  },
  // 登录
  login() {
    // 发送请求
    wx.request({
      url: 'https://live-api.itheima.net/login',
      method: 'POST',
      data: {
        mobile: this.data.mobile,
        code: this.data.code
      },
      success: (res) => {
        console.log(res);
        if (res.data.code !== 10000) {
          return wx.showToast({
            title: res.data.message,
            icon: 'none'
          })
        }
        // 存入token
        setToken('token', res.data.data.token)
        // 登录成功后重定项页面  需要其判断一下是返回tabBar页面还是非tabBar页面
        if (this.data.from) {
          console.log('=====登录成功进行页面重定向');
          if (this.data.type === "switchTab") {
            wx.switchTab({
              url: this.data.from,
            })
          } else {
            // 注意是重定向，会把登录页从页面栈中清除（点击返回按钮不会返回到登录页）
            wx.redirectTo({
              url: this.data.from,
            })
          }
        }
      },
      fail: (error) => {
        console.log(error);
      },
      complete: (res) => {},
    })
  },
  // 发送验证码
  handleGetCodeTap() {
    // 先进行手机格式的判断  如果格式错误的话进行提示  其次获取验证码调用接口
    if (!this.isMobileValid()) {
      return wx.showToast({
        title: '手机号码格式错误',
        icon: 'none'
      })
    }
    this.startCountDown()
    this.getCode()
  },
  // 开启倒计时
  startCountDown() {
    this.setData({
        time: 10
      }),
      // 先清除 防止多次点击
      clearInterval(this.timerId)
    // 开启定时器
    this.timerId = setInterval(() => {
      if (this.data.time === 0) {
        clearInterval(this.timerId)
        return
      }
      this.setData({
        time: this.data.time - 1
      })
    }, 1000)
  },
  // 手机号校验
  isMobileValid() {
    // 验证手机号
    const reg = /^[1][3-8][0-9]{9}$/
    const valid = reg.test(this.data.mobile.trim())
    return valid
  },
  // 验证码校验
  isCodeValid() {
    const reg = /^\d{6}$/
    const valid = reg.test(this.data.code.trim())
    return valid
  },
  // 调用接口获取验证码
  getCode() {
    wx.request({
      url: 'https://live-api.itheima.net/code',
      method: 'GET',
      data: {
        mobile: this.data.mobile
      },
      success: (res) => {
        this.setData({
          code: res.data.data.code
        })
        console.log(res);
      },
      fail: (error) => {
        console.log(error);
      },
      complete: (res) => {},
    })
  }
});